喜IM有兩個動作check
和display
在我controller
,我必須對應於那些動作視圖兩種觀點check.html.erb
和display.html.erb
。該檢查方法中有一個表單的視圖 這裏是check.html.erbRuby on Rails的參數出現在URL
<%= form_for :display_command_list, :method => "get", :url => {:action => "display"} do |f| %>
<%= f.label :username %>
<%= f.text_field :username %><br />
<%= f.label :password %>
<%= f.password_field (:password) %><br />
<%= f.submit "Submit"%>
<% end%>
下面是兩個動作:
def check
end
def display
#some code here
respond_to do |format|
format.html
end
end
當我填寫支票形式來看,它提交形成顯示動作並將顯示動作重定向到顯示視圖。但問題是/display.html.erb是所有參數提交的形式在它的網址是這樣的 - /display?%username%=myname
...我認爲我的檢查方法需要寫入它的東西,以便窗體被提交到顯示方法並且url不包含表單中的參數。 使用PARAMS我不能使用的檢查方法的參數,因爲它們是空的,它拋出一個零對象錯誤 請幫
更新:
我用:方法=>後代替:方法= >看到後在form_for標籤 how can I hide params I transmit to a method (like form_for seems to do)?
它並沒有顯示任何參數在URL中。 但現在當我從display.html.erb(比如說do_something.html.erb)轉到另一個視圖並單擊返回按鈕返回到我的display.html.erb時,它說網頁已過期。
請讓我知道如果亞姆不清楚在問這個問題,或者如果IAM做一些顯然是錯誤的在這裏..
參數有用戶名和密碼,我不希望任何人看到用戶名和密碼 – user1455116
然後你應該使用POST請求並獲得警告。我覺得你做錯了。而不是每次驗證你的動作,也許實施某種認證系統會更好(我推薦Devise)。 – binarycode