如何通过link_to传递参数并将它们作为form_for中的预设值?

时间:2013-08-08 02:13:17

标签: ruby-on-rails forms link-to form-for

我是rails的初学者,非常感谢一些指导!

这是我在第一个视图中的Link_to:

<%= link_to micropost.user.name, micropost.user %> | <%= link_to "Send Message", new_conversation_path( target: micropost.user.name, reason: micropost.c1 ) %>

这是我的对话控制器:

  def new
    @target = params[:target]
    @reason = params[:reason]
  end

  def create
    recipient_names = conversation_params(:recipients).split(',')
    recipients = User.where(name: recipient_names).all
    conversation = current_user.
    send_message(recipients, *conversation_params(:body, :subject)).conversation
    redirect_to conversation
  end

正如您所看到的,我正在使用邮箱gem,因此我没有会话模型。

最后,这是我在第二个视图中的表单:

<%= simple_form_for :conversation, url: :conversations do |f| %>
  <%= f.input :recipients, @target %>
  <%= f.input :subject, @reason %>
  <%= f.input :body %>
  <div class="form-actions">
    <%= f.button :submit, class: 'btn-primary' %>
    <%= submit_tag 'Cancel', type: :reset, class: 'btn btn-danger' %>
  </div>

<% end %>

我希望当用户点击发送消息链接时,会自动使用收件人的姓名和微博主题预设会话表单。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

f.input :recipients, input_html: { value: @target }

f.input :subject, input_html: { value: @reason }