我知道可以在view里用form_tag来向指定的操作传递参数
比如
<% form_tag do %>
用户名:<%= text_field_tag :username %>
密 码:<%= password_field_tag :password %>
但是,为什么这样就不行
怎样才能用html tag 想执行的方法传递参数???
[b]问题补充:[/b]
不是你讲的意思,不好意思,我没把我的问题陈述清楚。
是这样的,如何在html文件的form中的参数传递到ror的controller?
你之前给出加那段代码是加到html.erb文件中的form吧?
form_tag 不起向指定操作传递参数的作用,传递参数是因为FORM元素自身的作用,form_tag一是生成表单,二是参与表单保护,如open2ye所说。
你的表单参数传递不过去,原因是没有通过表单验证,拒绝传递。
如果要自定义参数,模型外的参数,需要修改参数获取的方法,params[:para]。
错误信息???
如果你是 Rails2.1
可能是 CSRF保护
请在下面的form 中加入
[code="java"]<%= tag(:input, :type => "hidden", :name =>
request_forgery_protection_token.to_s, :value =>
form_authenticity_token) %> [/code]
或在你的 controller 上加入
[code="java"]skip_before_filter :verify_authenticity_token[/code]
可能是你controller代码的问题:
参数值可以这样取:
params[:username]
params[:password]
可以在action中先puts出来看看。