oka*_*56k 1 model-view-controller ruby-on-rails-3
假设我new在控制器中有一个标准方法:
def new
@doc = Doc.new
respond_to do |format|
format.html
format.json { render json: @doc }
end
end
Run Code Online (Sandbox Code Playgroud)
我如何通过它来促进传递论证,即:
def new(i)
...
end
Run Code Online (Sandbox Code Playgroud)
允许我在视图中写这样的东西:
<%= link_to(e.name, new_doc_path(e.id)) %>
Run Code Online (Sandbox Code Playgroud)
干杯!
Rails不能那样工作.如果要将任何内容传递给控制器,则必须使用params哈希.在你的例子中:
视图:
<%= link_to(e.name, new_doc_with_parameter_path(e.id)) %>
Run Code Online (Sandbox Code Playgroud)
控制器:
def new
id = params[:id]
# do something with `id`
end
Run Code Online (Sandbox Code Playgroud)
为此,您必须更改路线,以便可以通过idURL传递给新操作:
get "/docs/new/:id" => "docs#new", :as => :new_doc_with_parameter
Run Code Online (Sandbox Code Playgroud)
虽然上面应该可行,但在你的情况下,最好看一下嵌套资源.
| 归档时间: |
|
| 查看次数: |
4864 次 |
| 最近记录: |