7
開始學習Ruby on Rails。
如何添加到窗體的虛擬域?
提交表單後,這些字段必須合併並存儲在單個數據庫字段中。如何添加到表單虛擬域
開始學習Ruby on Rails。
如何添加到窗體的虛擬域?
提交表單後,這些字段必須合併並存儲在單個數據庫字段中。如何添加到表單虛擬域
首先設置形式和往常一樣:
<%= form_for @user do |f| %>
<ol>
<li>
<%= f.label :first_name, 'First Name' %>
<%= f.text_field :first_name %>
</li>
<li>
<%= f.label :last_name, 'Last Name' %>
<%= f.text_field :last_name %>
</li>
<%= f.submit %>
</ol>
<% end %>
在這個例子中,我們添加一個虛擬屬性爲first_name
和last_name
。
user.rb
class User < ActiveRecord::Base
attr_accessor :first_name
attr_accessor :last_name
end
新虛擬屬性添加attr_accessor
。
users_controller.rb
def create
@user = User.new(:full_name => {'firstname' => user_params[:first_name], 'lastname' => user_params[:last_name]})
...
end
private
def user_params
params.require(:user).permit(:first_name, :last_name)
end
最後,添加的方法,以允許虛擬屬性PARAMS(假設導軌4)。
要保存多個輸入並將它們保存到數據庫中的單個字段中,您可以將控制器中的虛擬字段組合起來,然後將它們保存到數據庫中,如上面的create
方法所示。
好的,非常感謝湯姆。謝謝! – 2014-09-27 18:39:29
沒問題,請upvote如果這有助於:) – 2014-09-27 18:46:27
當然,湯姆。 – 2014-09-27 19:05:40