ruby-on-rails – 如何在Rails 3中将参数传递给我的表单中的hidden_​​field_tag?

ruby-on-rails – 如何在Rails 3中将参数传递给我的表单中的hidden_​​field_tag?,第1张

概述我正在尝试使用消息传递功能(使用 acts-as-messageable gem),我希望用户无需输入’:to’字段即可发送消息. 在我的/users/show.html.erb中我有: <%= link_to 'Send a message', new_message_path %> 在我的/messages/new.html.erb中: <%= simple_form_for @message 我正在尝试使用消息传递功能(使用 acts-as-messageable gem),我希望用户无需输入’:to’字段即可发送消息.

在我的/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?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1279028.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存