我对新表单的看法是
<h1>Add Form 3C </h1>
<%= form_for([@basiccase, @form3c]) do |f| %>
<%= render 'shared/error_messages', :object => f.object %>
<div class="field">
<%= f.label :date_of_investigation %>
<%= f.date_select :date_of_investigation, {:include_blank => true, :default => nil} %>
</div>
<div class="actions">
<%= f.submit "Add Form" %>
</div>
<% end %>
我的new和create控制器是
def new
@title = "New Form 3C"
@basiccase = Basiccase.find_by_id(params[:basiccase_id])
@form3c = @basiccase.build_form3_c
end
def create
@basiccase = Basiccase.find_by_id(params[:basiccase_id])
@form3c = @basiccase.build_form3_c(params[:form3c])
if @form3c.save
flash[:success] = "Form created!"
redirect_to current_user
else
flash[:warning] ="Failed to create a Form"
render 'users/show'
end
end
我无法将params [:form3c]的值输入到create控制器中。当我试图检查put params [:form3c]时,它显示为空白。 Can Any帮助我,我错了
答案 0 :(得分:1)
params键将基于您的班级名称。 Rails期望类名是大小写混合的(例如BasicCase),并通过使用下划线小写和分隔单词来创建param键。
您可以使用#underscore:
在Rails控制台中进行检查1.9.2p290 :001 > "BasicCase".underscore
=> "basic_case"
我想你已经将你的类命名为Form3C,它就像Dylan建议的那样成为form3_c。
您可能需要考虑将模型重命名为BasicCase和Form3c,它们应该为您提供params basic_case_id和form3c。
答案 1 :(得分:0)
点击“添加表单”后,检查您的控制台或development.log。
不确定确切,但你会发现类似的参数:
Parameters: {"utf8"=>"Γ£ô", "authenticity_token"=>"...", "basiccase"=>{"form3c" => {"email"=>"asdsa", "password"=>"[FILTERED]", "remember_me"=>"0"}}}
然后使用params [:basiccase] [:form3c]