2015-06-23 28 views
0

我想使用HTML內部的按鈕使用HTML本身的信息。Ruby中的HTML按鈕方法

更多細節:

有一個html.erb文件。在那裏有2 <input type="hidden" name="Name" value='Tom'>和一個按鈕。

在html.erb文件中,我可以通過鍵入params['Name']來獲取值。但是,這是我的問題。我不知道如何編寫一個按鈕,所以當我點擊它時它將只保存@user。因此,按鈕的方法應該是這樣的:

@user.name = params["Name"] 
@user.age = params["Age"] 
@user.save 

對於我來說,它看起來像最簡單的,如果我的HTML,其中@user,姓名和年齡都存儲中有這個方法(的按鈕)。但我是一個新的紅寶石,所以我知道什麼。

+0

請參閱從http://apidock.com/rails/ActionView/Helpers/UrlHelper/button_to –

+1

我假設這是在Rails例如button_to的視圖?如果是這樣,params散列只在控制器中可用,並且您需要將這些值設置爲實例變量,以便它們在視圖中可用。 –

回答

0

在你的控制器,你可以訪問params['Name']params['Age']保存或更新現有:

@user.name = params["Name"] 
@user.age = params["Age"] 
@user.save 

更Rails的-Y方式,但是是用form_for創建一個表單對象:

# show.html.erb (or whatever controller action the view is for) 
<% form_for @user do |f| %> 
    <%= f.text_field :name %> 
    <%= f.text_field :age %> 
    <%= button_to "Save User" %> 
<% end %> 

# user_controller.rb 
# If creating: 
@user = User.new(params[:user]) 
# or for updating: (no need for save) 
# @user.update_attributes(params[:user]) 
@user.save 

由於:age:name將在:user哈希看起來像這樣被傳遞:

user: { 
    name: "John", 
    age: 18 
} 

其可以被傳遞給User.new@user.update_attributes和它將設置@user.name@user.age從散列。

我建議瀏覽了Rails的saving data in the controller部分引導

+0

我想你錯了。 '@ user'是這個html所需的用戶類的實例。 '@ name'不存在只有'@ user.name' 按鈕名稱是「Save User」按鈕的功能是: '@ user.name = params ['Name']' '@ @ user.age = params ['Age']' 這將節省名稱和年齡吧?! – JavaJawa

+0

我明白了,不,你必須在'UserController'中做到這一點,你不能從視圖中做到這一點 – SuckerForMayhem

+0

可悲的是,我無法訪問'params ['Name']''和'params ['Age' ]在控制器中。 – JavaJawa