将参数发送到新方法

Sending params to the new method

我想覆盖控制器中的默认 new 方法以接收一些参数。最好的方法是什么?像这样更改路由并向方法添加参数?

get 'article/:id/new', to: 'articles#new', as: :new_article

在控制器中:

def new(master)
  @article = current_user.articles.new(master)
end

有更好的方法吗?我让它工作的唯一方法是在表单中也使用隐藏字段,这根本不理想。

您有一个 link 适合您的 new 操作的表格?那里坏了,应该只是一个 link.

只需将参数添加到 link:

link_to "New Article", new_article_path( some_param: "some_value" )

然后在控制器中:

def new
  @article = current_user.articles.new some_param: params[:some_param]
end