在我的/users/show.HTML.erb中我有:
<%= link_to 'Send a message',new_message_path %>
在我的/messages/new.HTML.erb中:
<%= simple_form_for @message,:url => messages_path,:method => :post do |f| %> <%= hIDden_fIEld_tag :user_ID %> <%= f.input :body %> <%= f.submit %> <% end %>
我的消息控制器:
def new @message = ActsAsMessageAble::Message.new end def create @to = User.find(params[:user_ID]) current_user.send_message(@to,params[:body]) end
在我提交表单的那一刻,Rails显然找不到ID = nothing的用户,因为没有param [:user_ID]存在.
我无法弄清楚如何将param传递给表单中的hIDden_fIEld_tag?
感谢您的帮助.
解决方法 所以我想要做的是访问用户配置文件,单击发送消息,并能够编写消息并让它自动发送给用户,而无需明确规定:to fIEld.问题是:<%= hIDden_tag_fIEld中的user_ID:user_ID%>没有被设定.换句话说,我不能从那个形式的params得到:user_ID.
我们尝试的一些解决方案是将params包含在link_to中,但是对于将对象视为nil的形式而言并不合适.
我最终做的是创建一个嵌套资源,如下所示:
resources :users do resources :messages do end end
这最终给了我url:users /:ID / messages / new(new_user_message_path)
我的控制器最终看起来像这样:
def new @message = ActsAsMessageable::Message.new @user = params[:user_ID] end def create @to = User.find params[:ID] if current_user.send_message(@to,params[:acts_as_messageable_message][:body] flash[:notice] = "Success" else flash[:error] = "Fail" end end
在我能够离开的形式<%= hIDden_tag_fIEld:user_ID%>原样.
但基本上解决了找到用户(我正在访问其个人资料)并在我的创建 *** 作中设置@to的问题.
总结以上是内存溢出为你收集整理的ruby-on-rails – 如何在Rails 3中将参数传递给我的表单中的hidden_field_tag?全部内容,希望文章能够帮你解决ruby-on-rails – 如何在Rails 3中将参数传递给我的表单中的hidden_field_tag?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)