前提・実現したいこと
railsでform_tagの中に複数のラジオボタンを作りたいです。
(現在、form_tagの中にテキストデータを入力する入力フォームを作成したのですが、1つの送信ボタンでラジオボタンの情報も送信したいので)
発生している問題・エラーメッセージ
以下のようなエラーが出てしまい、ページが表示できない状態です、、、、
NameError in Posts#new Showing /home/ec2-user/environment/test/hello/app/views/posts/new.html.erb where line #29 raised: undefined local variable or method `f' for #<#<Class:0x00007f47806a2b78>:0x00007f47764b5e28> Extracted source (around line #29): 27 <span class="room-type">部屋の有無</span><br> 28 <div class="radio-inline"> 30 <%= f.radio_button :share, :今住んでる部屋をシェアしたい, checked: "checked" %> 31 <%= f.label :今住んでる部屋をシェアしたい, class: "share_type_label" %> 32 </div>
該当のソースコード
Ruby
1ファイル名:posts_controller.rb 2class PostsController < ApplicationController 3def new 4 @post = Post.new 5 end 6 7 def create 8 @post = Post.new( 9 content: params[:content], 10 detail: params[:detail], 11 user_id: @current_user.id 12 ) 13 if @post.save 14 flash[:notice] = "投稿を作成しました" 15 redirect_to("/posts/index") 16 else 17 render("/posts/new") 18 end 19end 20---------------------------------------------------------------------------------------------------- 21ファイル名:new.html.erb 22<%= form_tag("/posts/create") do %> 23 <form action="#" method="post"> 24 <table border="1"> 25 <tr> 26 <th>タイトル</th> 27 <td><textarea name="content" class="title-textarea"><%= @post.content %></textarea></td> 28 </tr> 29 <tr> 30 <th>部屋の有無</th> 31 <td> 32 <div class="field"> 33 <span class="room-type">部屋の有無</span><br> 34 <div class="radio-inline"> 35 <%= f.radio_button :share, :今住んでる部屋をシェアしたい, checked: "checked" %> 36 <%= f.label :今住んでる部屋をシェアしたい, class: "share_type_label" %> 37 </div> 38 <div class="radio-inline"> 39 <%= f.radio_button :share, :相手の部屋に住みたい %> 40 <%= f.label :相手の部屋に住みたい, class: "share_type_label" %> 41 </div> 42 <div class="radio-inline"> 43 <%= f.radio_button :share, :一緒にこれから探したい %> 44 <%= f.label :一緒にこれから探したい, class: "share_type_label" %> 45 </div> 46 </div> 47 </td> 48 </table> 49 <input type="submit" value="送信" class="btn-square"> 50 </form> 51 <% end %> 52---------------------------------------------------------------------------------------------------- 53ファイル名:routes.rb 54Rails.application.routes.draw do 55 post "posts/create" => "posts#create" 56end 57---------------------------------------------------------------------------------------------------- 58ファイル名:post.rb 59class Post < ApplicationRecord 60 validates :content, {presence: true, length: {maximum: 100}} 61 validates :user_id, {presence: true} 62 63 def user 64 return User.find_by(id: self.user_id) 65 end 66 67 enum share_type: {今住んでる部屋をシェアしたい:1, 相手の部屋に住みたい:2, 一緒にこれから探したい:3} 68end 69
試したこと
postsテーブルにinteger型のカラムを追加しました。
カラム名はshareです
ググりまくったのですがわかりませんでした。
初学者のためとんちんかんなことを書いているとは思うのですが、どうかお助けください、、、、
補足情報(FW/ツールのバージョンなど)
clooud9で作っています
rubyのバージョンは2.6.3です
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。