0

控制器中的 -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
4

1 回答 1

0

尝试params[:mailsetting]不使用下划线。该模型名为 MailSetting,所以我认为这是正确的。NoMethod 错误意味着没有生成名为 mail_setting 的辅助方法,由于您已经制作了模型,因此可能是因为它的拼写错误。

我建议在命名资源时不要使用下划线/破折号,因为它只会混淆语法。

于 2012-08-20T23:45:14.090 回答