Ruby on rails 创建可用于创建和更新模型的表单
我正在创建一个表单,用户可以在其中输入他们喜欢的食物。我希望表单既适用于现有的最喜欢的食物,也适用于新的最喜欢的食物 我想我可以像这样切换创建窗体的对象:Ruby on rails 创建可用于创建和更新模型的表单,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我正在创建一个表单,用户可以在其中输入他们喜欢的食物。我希望表单既适用于现有的最喜欢的食物,也适用于新的最喜欢的食物 我想我可以像这样切换创建窗体的对象: <% if @user.favorite_food %> <%= form_for @user.favorite_food, :html => { class: :form } do |f| %> <% else %> <%= form_for :favorite_food, :url
<% if @user.favorite_food %>
<%= form_for @user.favorite_food, :html => { class: :form } do |f| %>
<% else %>
<%= form_for :favorite_food, :url => :favorite_food, :html => { class: :form } do |f| %>
<% end %>
{class::form}do | f |%>
:最喜欢的食物,:html=>{class::form}do | f |%>
然而,我得到了一个错误
语法错误,意外的关键字\u else,期望关键字\u end
我同意Mayank评论您的表单应该是这样的
<% if @user.favorite_food %>
<%= form_for @user.favorite_food, :html => { class: :form } do |f| %>
<% end %>
<% else %>
<%= form_for :favorite_food, :url => :favorite_food, :html => { class: :form } do |f| %>
<% end %>
<% end %>
{class::form}do | f |%>
:最喜欢的食物,:html=>{class::form}do | f |%>
您最好为此使用嵌套表单,并让用户控制器
负责更新:
<%= form_for @user, :html => { class: :form } do |f| %>
<%= f.fields_for :favourite_food do |food_form| %>
<% # your favorite_food inputs go here %>
<% end %>
<% end %>
在您的UserController
中,您需要确保在强参数上允许使用最喜爱的食物属性:
params.require(:person).permit(favorite_food_attribures: []) #do not delete the existing parameters that are already there.
你可以查看更多信息
希望这能对您有所帮助。您收到此错误,因为您尚未结束表单。。放2个,一个在前,一个在后。但你所说的现有食物是什么意思。。?
params.require(:person).permit(favorite_food_attribures: []) #do not delete the existing parameters that are already there.