-Form_html.erb,routes.rb和控制器中的create方法如下所示。但是在表单提交时,它在我使用params [:mail_setting]
时给出了nil类错误 routes.rb
-----------
resources :mail_settings
the _form.html.erb
---------
<%= form_tag '/mail_settings' do %>
<div class="fieldBlock">
<%= label_tag :name %> <%= text_field_tag :name%> </div>
<div class="fieldBlock">
<%= label_tag :id%> <%= text_field_tag :id%> </div>
<div class="actions fieldBlock">
<%= submit_tag "Update Settings ", :class => "btn-large btn-success" %>
</div>
<% end %>
控制器中的create方法:
def create
@mail_setting = MailSetting.find_by_user_id_and_name(current_user.id, params[:mail_setting][:name])
if ! @mail_setting.blank?
@mail_setting.update_attributes(params[:mail_setting])
else
@mail_setting = MailSetting.new(params[:mail_setting])
@mail_setting.save
render action: "index"
end
end
答案 0 :(得分:0)
尝试使用不带下划线的params[:mailsetting]
。该模型名为MailSetting,因此我认为这是正确的。 NoMethod错误意味着没有生成的mail_setting名称辅助方法,因为你已经创建了模型,可能是因为拼写错误。
我建议在命名资源时不要使用下划线/破折号,因为它只会混淆语法。