Rails 3で@studylogheaderのメンバー値が表示されない問題について

このQ&Aのポイント
  • Rails 3のコードで@studylogheaderのメンバー値が表示されず困っています。@studylogheaderは学習記録を保持するオブジェクトで、学習記録には学習者(member)が含まれます。
  • 上記のコードで画面表示したときに、学習記録の学習者ではなく一番上の項目が選択されてしまいます。学習記録に保持されている学習者を選択肢から選んで表示するには、どうしたらよいでしょうか?
  • 質問者はRails 3のコードを使用しており、@studylogheaderのメンバー値が表示されない問題に直面しています。学習記録オブジェクトは学習者(member)を含んでおり、画面表示時には選択肢から正しい学習者を表示したいとのことです。解決方法を教えてください。
回答を見る
  • ベストアンサー

Rails 3 について教えてください。

<%= form_for(@studylogheader) do |f| %> <div class="field"> <%= f.label :member %><br /> <%= f.collection_select( :member, Member.all, :id, :username ) %> </div> <div class="actions"> <%= submit_tag %> </div> <% end %> このようなコードで、@studylogheader のmember の値が表示されず困っています。 @studylogheader は、学習記録を保持するオブジェクトで、学習記録には、 学習者(member)を持っています。 上記のコードで画面表示したときに学習記録の学習者ではなく、一番上の 項目が選択された状態になってしまいます。 学習記録に保持されている学習者を選択肢の中から選んで表示するには、 どうしたらよいのでしょうか?

  • Ruby
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.1

コードがないのでわからん。 > @studylogheader は、学習記録を保持するオブジェクトで、学習記録には、 > 学習者(member)を持っています。 これは StudyLogHeader モデルが member_id を経由して Member モデルとbelongs_to で紐づいているということ? なんとなく collection_select の第一引数が :member なのが怪しげですけど、単純に :member_id のミスタイプではなくて、何らかの意図があるのであれば補足にどうぞ。

den256
質問者

お礼

:member_id にしたら正しく動作しました!ありがとう ございました!

関連するQ&A

  • rails3初心者 年齢を表示する

    rails3を勉強中です。 お詳しい方、ご教授いただけたら嬉しいです。 実装したい内容 プルボンタンで年齢「20」が選ばれた場合、 その結果を出力する(非モデル) ==================== views:presons/index.html ==================== <%= form_tag :action => :age do %> <%= select("form","age", (1..100))%> <%= submit_tag "表示する"%> <% end %> ==================== presons_controller.rb ==================== def index @preson = Preson.new end def age @preson = params[:form][:age] redirect_to :action => 'index' end ==================== views:presons/index.htmlで選択された 「20」を表示したいのですが、 そのコードの書き方をご教授ください。 どうぞよろしくお願い致します。

    • ベストアンサー
    • Ruby
  • Rails コンボボックスの値の保持について(select_tag,c

    Rails コンボボックスの値の保持について(select_tag,collection_select) こんにちは。 Ruby on Railsで簡単な一覧検索画面を作成中の者です。 検索時の検索条件にコンボボックスを使用しており、検索後にコンボボックスの値を保持したいのですが、どうしてもできません。 どなたかお分かりの方がおられましたらご教授いただけないでしょうか。 下記、作成中のソースです。 Viewの検索条件部 <%- form_tag({:action => "search"},{:method=> "GET"}) do -%> <th class="U" align="left" width="10%"><label for="userNm">ユーザー名</label></th> <td width="90%"><%= text_field_tag :userNm, @userNm %></td>  <th class="U" align="left" width="10%"><label for="authCd">社員権限</label></th> <td width="90%">  <%= collection_select(:auth, :authCd, Auth.find(:all, :order => "AUTH_CD"), :id, :AUTH_NM, :include_blank => true) %>  <td align="center"><%= submit_tag '検索' %></td> Controllerクラス: def search #画面パラメータから検索条件を作成 c = Condition.new # ユーザー名 userNm = "" if params[:userNm] userNm = params[:userNm] c.and "USER_NM", "LIKE", "%#{userNm}%" end # コンボボックスの値を取得 if params[:auth] && !params[:auth]["authCd"].blank? c.and "AUTH_CD", params[:auth]["authCd"] end # 検索処理 @users = User.paginate(:order => "USER_ID asc", :per_page => 5, :page => params[:page], :conditions => c.where) # 検索条件保持 @userNm = params[:userNm] # コンボボックスの値が保持できない if params[:auth] @auth_authCd = params[:auth]["authCd"] end respond_to do |format| format.html # index.html.erb format.xml { render :xml => @users } end end 見づらくて申し訳ありませんが、ざっと上記のようになっています。 もう1つの検索条件であるユーザー名(userNm)は保持できるのですが、コンボボックス(社員権限)の値が保持できません。 select_tagや、selectも使ってみたのですが、どちらも同じ結果でした。 コンボボックスの条件は、Authモデルから値を読込み、一番上は空白にする。というものです。 どのように記述すれば保持できるのか色々調べてみたのですが、結局分からず仕舞いでした。。 どうぞ宜しくお願い致します。

    • ベストアンサー
    • Ruby
  • EXCEL VBA twitter ログイン

    EXCEL VBAを利用しtwitterにログインしたいと思っております ログイン保持機能はoffにします https://twitter.com/login のソースを見てみると <label class="username js-username"> <span>ユーザー名、またはメールアドレス</span> <input class="js-username-field email-input" type="text" name="session[username_or_email]" autocomplete="on"> </label> <label class="password js-password"> <span>パスワード</span> <input class="js-password-field" type="password" value="" name="session[password]"> </label> とあるのですがid='xxxxxx'がなく nameで行けるかと思い objIE.Document.forms(0).item("session[username_or_email]").Value = ID でやってみたのですが実行するとエラーになってしまいます nameを指定して特定のフォームに入力する方法や これでと入力できるという方法を教えて頂けないでしょうか よろしくお願いいたします

  • CSS実行条件

    チェックボックスがオンになったらCSSを実行するようにしたいので いろいろ調べたんですが、下のようなCSSがないんです。 |||ボックスがオフなら要素で囲まれている文字を隠す |||オンなら囲まれている文字を表示する。 <input id="checkbox1" type="checkbox"> <label for="checkbox1" class="c1">テスト</label> <div class="a"> 表示したり隠したりする部分 </div> <div class="a">で囲まれている部分を隠したり表示したりします。 どなたかお願いします。

    • ベストアンサー
    • CSS
  • 楽天トラベルAPIで特定県の検索サイト作成

    楽天トラベルAPIを使って特定の県の宿泊施設検索をPHPで作っていますが、地域選択のプルダウンが表示されない状況です。 HTML部のソースはつぎのとおりですが、誤っている箇所はないと思うのですが、どなたか指摘をお願いします。 大半のソースはhttp://www.pulp-studio.net/archives/200/を流用しています。 <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>県の宿泊施設検索サービス</title> <meta http-equiv="content-style-type" content="text/css" /> <meta http-equiv="content-script-type" content="text/javascript" /> <meta name="description" content="" /> <meta name="keywords" content="" /> <link rel="stylesheet" href="./travel.css" type="text/css" /> </head> <body> <div id="container"><!-- container --> <div id="header"> <h1>県の宿泊施設検索サービス</h1> </div> <div id="headerline">宿泊施設検索(楽天トラベル 施設検索API 利用)</div> <div class="contents"><!-- contents --> <!-- ■フォーム開始 --> <form action="./travelg.php" method="post"> <table class="form_table"> <tr> <td class="form_left"> <div class="tablebox"> </div> </td> <td class="form_right"> <div class="tablebox"> </div> </td> </tr> <tr> <td class="form_left"> <div class="tablebox" style="text-align: left;">選択した地域やオプションで<br />宿泊施設を検索・表示します。<br /><font color="red"><b>地域は必ず選択<br />してください</b></font><br />※地域選択ボックスが表示されな<br />い時は、ブラウザの更新ボタンを<br />何度か押してみてください</div> </td> <td class="form_right"> <div class="tablebox"> <table align="left"> <tr> <td> <!-- ▼地域選択開始▼ --> <div class="classcode"> ▼地域選択▼ <div id="middleClassList"></div> <div id="smallClassList"></div> <div id="detailClassList"></div> </div> </td> <td> <div class="squeezecode1"> ▼オプション選択(複数選択可)▼<br /> <input id="sq1" type="checkbox" name="squeeze[]" value="onsen" /> <label for="sq1"> 温泉のある宿泊施設</label><br /> <input id="sq2" type="checkbox" name="squeeze[]" value="daiyoku" /> <label for="sq2"> 大浴場のある宿泊施設</label><br /> <input id="sq3" type="checkbox" name="squeeze[]" value="kinen" /> <label for="sq3"> 禁煙ルームがある宿泊施設</label><br /> <input id="sq4" type="checkbox" name="squeeze[]" value="internet" /> <label for="sq4"> インターネットに接続出来る宿泊施設</label> </div> </td> <td> <div class="squeezecode2"> <br /> <input id="sq5" type="checkbox" name="squeeze[]" value="breakfast" /> <label for="sq5"> 朝食のある宿泊施設</label><br /> <input id="sq6" type="checkbox" name="squeeze[]" value="dinner" /> <label for="sq6"> 夕食のある宿泊施設</label><br /><br />  <input class="search_button" type="submit" name="submit" value="検索" /> </div> </td> </tr> </table> <!-- ▲地域選択終了▲ --> <br clear="all" /> </div> </td> </tr> <tr> <td class="form_left"> <div class="tablebox"> </div> </td> <td class="form_right"> <div class="tablebox"> <!-- Rakuten Dynamicad FROM HERE --> <script type="text/javascript"> <!-- rakuten_template = "s_468_60_txt"; rakuten_affiliateId = "04701d1e.da0f7792.04701d21.8f900d36"; rakuten_service = "travel"; rakuten_target = "_blank"; rakuten_color_bg = "FFFFFF"; rakuten_color_border = "CCCCCC"; rakuten_color_text = "000000"; rakuten_color_link = "0000FF"; rakuten_color_price = "CC0000"; //--></script> <script type="text/javascript" src="http://dynamic.rakuten.co.jp/js/rakuten_dynamic.js"> </script> <!-- Rakuten Dynamicad TO HERE --> </div> </td> </tr> </table> </form> <!-- ■フォーム終了 --> </div><!-- /contents --> <!-- ▼検索結果表示▼ --> <div class="contents"><!-- contents --> <div class="query_status"> <!-- 検索・初期表示 --> <div class="notfound"> -&nbsp;<a href="http://travel.gajin.jp" title="Copyright" target="_blank" style="font-size:0.8em;">GAJINトラベル</a>&nbsp;- </div> <!-- /検索・初期表示 --> </div> </div><!-- /contents --> <!-- □API検索結果表示 --> <div id="footer">○○県の宿泊施設検索サービス</div> </div><!-- /container --> <script type="text/javascript" src="./trvApi_GetAreaClass.js" charset="utf-8"></script> </body> </html>

    • 締切済み
    • PHP
  • XHTMLのSELECTについて

    Java(フレームワークはSeasar)とXHTMLを使用したサイトなのですが、 データベースから取得した値を初期状態でSELECTに選ばせることができません。 DBで取得した値はJavaで public String menuDispFlg; と宣言された変数に格納されています。 デバッグで変数に値が格納されていることは確認できています。 SELECT部分を抜き出したソースが↓です。 <form id="form">  <div class="salesis">   <div class="salesIn">    <div class="main">     <div class="mainIn">      <div class="cF">       <div class="commontbl">        <table cellpadding="0" cellspacing="0">         <tr>            ・            ・            ・            (略)            ・            ・            ・          <th scope="row"><p>メニュー表示</p></th>          <td class="A">           <select id="menuDispFlg" name="menuDispFlg" tabindex="10">            <option value="0" label="制御しない"></option>            <option value="1" label="制御する"></option>           </select>          </td>         </tr>        </table>       </div>      </div>     </div>    </div>   </div>  </div> </form> DBからmenuDispFlg = "1"を取得しても、一番上の"制御しない"を常に選択した状態になっています。 このSELECTで"制御する"を選択するとちゃんとmenuDispFlg="1"で送信されるのですが、変更する前の値がわからなくなるのでどうにか修正したいです。 よろしくお願いいたします。

  • ラジオボタン+style.displayで<TR>の表示を切り替えるとテーブルが拡大していく

    ラジオボタンを使って、 if (keisan_select == "1") { document.getElementById('TAG_check_set1').style.display = "inline"; document.getElementById('TAG_check_set2').style.display = "none"; という風に<TR>のstyleを変更して テーブルの表示切り替えを行っているんですが Firefoxで実際に動作させてみると、表示を切り替えるたび セルが拡大するような形で下にずれていきます。(IE7だと問題なし) Firefoxのエラーコンソールでは特に警告無く、 Another HTML-lint gatewayの文法チェックでは75点で普通の評価。(エラーの重要度最大2点) http://htmllint.itc.keio.ac.jp/htmllint/htmllint.html タグに関係ないところで少し書き換えると動作が変わったりするので うちの環境に問題があるのかも知れないけど・・何が原因かわかる人います?。 アップローダに上げたサンプル http://kissho.xii.jp/1/src/1jyou73993.html <TABLE style="border:1px solid"> <TR><TD> テキストエリアが↓にずれていく謎のボタン  <label for="TAG_in_check1"><input type="radio" name="keisan_select" id="TAG_in_check1" onclick="set_display()" value="1" checked>猫</label>  <label for="TAG_in_check2"><input type="radio" name="keisan_select" id="TAG_in_check2" onclick="set_display()" value="2">犬</label>  <label for="TAG_in_check3"><input type="radio" name="keisan_select" id="TAG_in_check3" onclick="set_display()" value="3">狸</label> </TD></TR> <TR id="TAG_check_set1"><TD>表示変更領域 にゃんこ</TD></TR> <TR id="TAG_check_set2" style="display:none"><TD>表示変更領域 わんこ</TD></TR> <TR id="TAG_check_set3" style="display:none"><TD>表示変更領域 ぽんぽこ</TD></TR> </TABLE>

  • メールフォームの確認画面の表示

    あるページのメールフォームで <label class="label" for="name1">ラウンド希望日<span class="style1">*</span></label> <span class="control"> 2008年 <select name="ラウンド希望日" size="1" id="select"> <option value="1">1</option> --------------省略---------------- <option value="12">12</option> </select> 月 <select name="ラウンド希望日" id="select" size="1"> <option value="1">1</option> --------------省略---------------- <option value="31">31</option> </select> 日 </span> と作って、2008年(選択)月(選択)日という感じでお客様に選択していただく項目を設けたのですが、選択して、いざ確認画面に行くと (例)7月25日とした場合 <確認画面> ラウンド希望日|7 25 と出てしまうんです。 これを本当は"7月25日"と表示したいんです。 これでは読みづらいので… ご指導のほうよろしくお願いします。

    • 締切済み
    • CGI
  • 検索フォーム(セレクトメニューについて)質問がございます。

    検索フォーム(セレクトメニューについて)質問がございます。 画像を添付いたしておりますが、用途種別の項目には事業用・居住用と2種類選択出来るようにしています。その用途種別の項目によって物件種別の項目を変更したいのですが、いろいろと試してみたのですが、PHP初心者の自分には良く分からず、皆様のお知恵をお借りしたいとおもい、質問いたしました。 <内容> (用途種別)事業用の場合 (物件種別)店舗・事務所・倉庫のメニュー (用途種別)居住用の場合 (物件種別)アパート・マンション・一戸建て・テラスハウス・その他 <ソース(html)> <div class="row"> <!-- item_type --> <?php $f = 'item_type'; echo $errors[$f]; ?> <label for="<?php echo $f ?>">物件種別</label> <span> <select name="<?php echo $f ?>" id="<?php echo $f ?>"> <optgroup class="jigyou" label="事業用"> <option value="6">店舗</option> <option value="7">事務所</option> <option value="8">倉庫</option> </optgroup> <optgroup class="kyojyu" label="居住用"> <option value="2">アパート</option> <option value="3">マンション</option> <option value="4">一戸建て・テラスハウス</option> <option value="22">その他</option> </optgroup> </select> </span> </div> <div class="row"><!-- app_type --> <?php $f = 'app_type'; echo $errors[$f]; ?> <label for="<?php echo $f ?>">用途種別</label> <span> <select name="<?php echo $f ?>" id="<?php echo $f ?>"> <option value="2" class="jigyou">事業用</option> <option value="1" class="kyojyu">居住用</option> </select> </span> </div> JS等も使用したのですが、jqueryを最初から使用しているため、上手く作動しません。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • addClassのやり方

    教えてください。 <section class="section" id="AAA"> <h3><img src="" alt="あああ" class="img-responsive"></h3> <div class="toggle" data-plugin-toggle> <div class="toggle"> <label>あああ一覧</label> <div class="row"> <ul class="list-item product-thumb-info-list"> <li class="item col-xs-6 col-sm-4 col-md-3 product"></li> <li class="item col-xs-6 col-sm-4 col-md-3 product"></li> <li class="item col-xs-6 col-sm-4 col-md-3 product"></li> </ul> </div> </div> </div> </section> <section class="section" id="BBB"> <h3><img src="" alt="いいい" class="img-responsive"></h3> <div class="toggle" data-plugin-toggle> <div class="toggle"> <label>いいい一覧</label> <div class="row"> <ul class="list-item product-thumb-info-list"> <li class="item col-xs-6 col-sm-4 col-md-3 product"></li> <li class="item col-xs-6 col-sm-4 col-md-3 product"></li> <li class="item col-xs-6 col-sm-4 col-md-3 product"></li> </ul> </div> </div> </div> </section> <section class="section" id="CCC"> <h3><img src="" alt="ううう" class="img-responsive"></h3> <div class="toggle" data-plugin-toggle> <div class="toggle"> <label>ううう一覧</label> <div class="row"> <ul class="list-item product-thumb-info-list"> <li class="item col-xs-6 col-sm-4 col-md-3 product"></li> <li class="item col-xs-6 col-sm-4 col-md-3 product"></li> <li class="item col-xs-6 col-sm-4 col-md-3 product"></li> </ul> </div> </div> </div> </section> 上記のようなページになっており、 <label>○○一覧</label> をクリックすると、 その下の画像がバラッと表示されるようになっております。 URLで、 「http:// ~/list/」のときは、このソースのままでいいのですが 「http:// ~/list/#AAA」のときは  <section class="section" id="AAA">  <h3><img src="" alt="あああ" class="img-responsive"></h3>   <div class="toggle" data-plugin-toggle>   <div class="toggle"> ← この行のクラスに「active」を追加したいのです。 どのようにすれば実現できるのでしょうか? .addClass('active') というものを見つけたのですが どのように書けば、ここの場所に追加というようにかけるのでしょうか? よろしくお願いします。

専門家に質問してみよう