【问题标题】:Rails link_to new with parameters not saving parametersRails link_to new 参数不保存参数
【发布时间】:2014-08-12 21:00:12
【问题描述】:

所以,我有两个对象,Floor,它有_many FloorMonsters,FloorMonster 属于_to Floor。

我在 Floor 的显示页面中有一个 link_to new_floor_monster_path,我打算将 Floor id 作为参数传递。 link_to 当前如下所示:

= link_to "Add a Monster to this Floor", new_floor_monster_path(floor_id: @floor.id)

在 FloorMonster 的控制器中,新方法是这样的:

def new
  @floor_monster = FloorMonster.new(floor_id: params[:floor_id])

  respond_to do |format|
    format.html # new.html.erb
    format.json { render json: @floor_monster }
  end
end

当我点击链接时,URL 会显示参数:

http://.../floor_monsters/new?floor_id=4

但是当我保存时, floor_id 为 nil 并且程序崩溃了。我在这里想念什么?我已经找到了与我完全一样的资源,但我没有成功。据我所知,The accepted answer herethis blog post 正在做我正在做的事情,但他们设法让它发挥作用。

【问题讨论】:

  • FloorMonster 新页面上有什么?从您给我们的内容来看,您仅在操作中使用 FloorMonster.new,它只是创建一个新实例,而不是持久化它。您有提交创建操作的表单吗?

标签: ruby-on-rails ruby parameters link-to


【解决方案1】:

我假设您在表单中公开新的 FloorMonster 以允许设置其他属性然后保存它。为了将floor_id 属性传递给创建操作,您需要在表单中添加一个字段。如果您不希望它被看到或被编辑,请使用hidden_field。在您的表单中,添加:

= f.hidden_field :floor_id

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2011-09-19
    • 1970-01-01
    • 2011-04-15
    • 2021-02-24
    相关资源
    最近更新 更多