说我在控制器中有一个标准的new
方法:
def new
@doc = Doc.new
respond_to do |format|
format.html
format.json { render json: @doc }
end
end
我如何通过它推动论证,即:
def new(i)
...
end
允许我在视图中写下这样的内容:
<%= link_to(e.name, new_doc_path(e.id)) %>
干杯!
答案 0 :(得分:7)
Rails不能那样工作。如果要将任何内容传递给控制器,则必须使用params
哈希。在您的示例中:
查看:
<%= link_to(e.name, new_doc_with_parameter_path(e.id)) %>
控制器:
def new
id = params[:id]
# do something with `id`
end
要实现此目的,您必须更改路线,以便通过网址将id
传递给您的新操作:
get "/docs/new/:id" => "docs#new", :as => :new_doc_with_parameter
虽然上面的应有效,但在您的情况下,最好还是看看Nested Resources。