我正在尝试使用 Rails 4 中的 Mailboxer gem 在我的站点中设置消息传递系统。当我的应用程序访问此代码时:
def fetch_params(key, *subkeys)
params[key].instance_eval do
case subkeys.size
when 0 then self
when 1 then self[subkeys.first]
else subkeys.map{|k| self[k] }
end
end
它返回错误:undefined method '[]' for nil:NilClass
我试图弄清楚这一点,但我不是很有经验。我一直在关注本教程:http: //jamestansley.com/2014/02/22/customizing-the-mailboxer-ruby-gem-2/
我尝试删除返回错误的代码行只是为了看看会发生什么,之后我收到了错误wrong number of arguments (1 for 2..6)
。
任何人都可以尝试向我解释这段代码吗?实现这个功能真的很艰难。
查看/对话/_form:
<%= simple_form_for :conversation, url: :conversations do |f| %>
<%= f.input :recipients %>
<%= f.input :subject %>
<%= f.input :body %>
<div class="form-actions">
<%= f.button :submit, class: 'btn-primary' %>
<%= submit_tag 'Cancel', type: :reset, class: 'btn btn-danger' %>
</div>
<% end %>
查看/对话/显示:
<h1><%= @conversation.subject %> </h1>
<!--may have to work on this view. don't know if i did the haml conversion correctly-->
<h1> <%= conversation.subject %> </h1>
<ul>
<% content_tag_for(:li, conversation.receipts_for(current_user)) do |receipt| %>
<%= message = receipt.message %>
<h3><%= message.subject %> </h3>
<p><%= message.body %> </p>
</ul>
<% render 'messages/form', conversation: conversation %>
<% end %>