を見つけられませんでした。大丈夫です、私はRailsの初心者ですから、一般的なコーディングであまり経験はありませんので、これは愚かだと思われますが、ここに問題があります:Ruby on Rails 5.1.4がモデルID
私は、コードを編集しは、ので、ここではより多くの情報を含め、私の現在のステータスの更新、次のとおりです。
投票&オプションモデル:
class Voting < ApplicationRecord
has_many :options
validates :vote, presence: true
accepts_nested_attributes_for :options
end
class Option < ApplicationRecord
belongs_to :voting
end
routes.rbを:
Rails.application.routes.draw do
resources :votings do
resources :options
end
root 'votings#new'
end
votings/new.html.erb:
<h1>create new poll</h1>
<%= form_with scope: :voting, url: votings_path, local: true do |form| %>
<p>
<%= form.label :voting %><br>
<%= form.text_area :content %>
</p>
<p>
<%= form.fields_for :option do |option| %>
<%= option.label 'Optionen' %><br>
<%= option.text_field :vote %>
<% end %>
</p>
<p>
<%= form.submit %>
</p>
<% end %>
votings/show.html.erb:
<p>
<strong>Your Voting:</strong>
<%= @voting.content %>
</p>
<ul>
<p>
<%= @options.vote %>
</p>
</ul>
votings_controller.rb:
class VotingsController < ApplicationController
def show
@voting = Voting.find(params[:id])
@options = @voting.options
end
def new
@voting = Voting.new
@voting.options.build
end
def create
@voting = Voting.new(voting_params)
@voting.save
redirect_to @voting
end
private
def voting_params
params.require(:voting).permit(:content, options_attributes: [:id, :vote])
end
end
options_controller.rb :
class OptionsController < ApplicationController
def create
@voting = Voting.find(params[:id])
@options = @voting.options.create(option_params)
redirect_to voting_path(@voting)
end
private
def option_params
params.require(:option).permit(:vote)
end
end
(オプションコントローラーのコードの一部がvotingsコントローラーと重複していると思うし、必要ならばそれもわからない)
同じページ内の関連オプションで投票を作成した後、同じページに投票オプションを表示する(voting/new.html.erb & voting/show.html.erb) 。
これは私の現在のエラーメッセージです:VotingsController#で
NoMethodErrorは#Votingため
未定義のメソッド `票」を作成します。0x0000000be55208
(これはコンテンツを提出した後に現れますフォームから) したがって、new.html.erbの形式はこれまでのところうまく動作します。
彼が、私はより詳細な情報が解決この問題を取得するのに役立ちます願っていshow.html.erb
から
<%= @options.vote %>
に「投票」を行うには何を知っていないようです。
"私はオプションが正しくありません"とはどういう意味ですか?どのようなエラー/予期しない動作がありますか?ログには何が表示されますか? –
「id = 30」のオプションが見つからない showアクションが気に入らないようですが、これが問題の原因かどうかはわかりません – Fly
どうしていますかoption_id 30?id 30のオプションである可能性があります。既に削除されています – rajbir