Ruby on Rails:表单不会创建hidden_field
问题描述:
我想创建一个带有助手的Rails窗体,但是并没有创建所有的字段。我有一个帮助者,包括我的观点(我将把他们包括在内)。但是因为我是新手,我甚至不确定我是以正确的方式做这件事。Ruby on Rails:表单不会创建hidden_field
当我这样写它时,它起初看起来像它的作品,因为按钮被创建,但是当我点击它时,没有值被传递,并且在DB中创建了空行(id和timestamp除外)。
users_helper.rb
module UsersHelper
def sub_button(u)
@current_user = User.find session[:user_id]
@temp_user = u
@sub = Subscription.where("userID = ? AND followingID = ?", @current_user.id, @temp_user.id)
if @sub.blank?
@following = false
else
@following = true
end
if(u.username != @current_user.username)
if @following
form_for(:subscription, :url => { :controller => "subscriptions", :action => "unsubscribe" }) do |s|
s.hidden_field(:userID, :value => @current_user.id)
s.hidden_field(:followingID, :value => u.id)
s.submit "Unfollow"
end
else
form_for(:subscription, :url => { :controller => "subscriptions", :action => "subscribe" }) do |s|
s.hidden_field(:userID, :value => @current_user.id)
s.hidden_field(:followingID, :value => u.id)
s.submit "Follow"
end
end
end
end
end
index.html.erb
<h2>All users</h2>
<table>
<tr>
<th>Username</th>
<th>Email</th>
</tr>
<% @user.each do |u| %>
<tr>
<td><%= u.username %></td>
<td><%= u.email %></td>
<td><%= sub_button(u) %></td>
</tr>
<% end %>
</table>
所以我在想,如果我失去了一些东西,以创建领域..任何线索?
答
我不知道,但我觉得这是它应该如何进行组织:
module UserHelper
def sub_button u
@current_user = User.find session[:user_id]
@temp_user = u
@sub = Subscription.where("userID = ? AND followingID = ?", @current_user.id, @temp_user.id)
if @sub.blank?
@following = false
else
@following = true
end
if(u.username != @current_user.username)
if @following
render partial: 'shared/unfollow', locals: { current_user: @current_user, u: u }
else
render partial: 'shared/follow', locals: { current_user: @current_user, u: u }
end
end
end
的意见/共享/ _unfollow.html.erb
<%= form_for(:subscription, url: { controller: "subscriptions", action: "unsubscribe" }) do |s| %>
<%= s.hidden_field(:userID, value: current_user.id) %>
<%= s.hidden_field(:followingID, value: u.id) %>
<%= s.submit "Unfollow" %>
<% end %>
的意见/共享/ _follow .html.erb
<%= form_for(:subscription, url: { controller: "subscriptions", action: "subscribe" }) do |s| %>
<%= s.hidden_field(:userID, :value => current_user.id) %>
<%= s.hidden_field(:followingID, :value => u.id) %>
<%= s.submit "Follow" %>
<% end %>
谢谢。这可能是更好的组织方式!但我仍然有同样的问题.. hidden_fields不会创建,我只需通过单击按钮提交一个(几乎)空表单。 – Alexander 2013-04-27 22:36:38
更改此:' current_user。 (%ID)%> u.id)%>' to this:' current_user.id)% > u.id)%>'现在它可以工作。感谢您的帮助! – Alexander 2013-04-27 22:39:17
ohh我错过了,会编辑答案。 – Ghar 2013-04-28 00:23:25