Rails でヘルパーを使用してフォームを作成しようとしていますが、すべてのフィールドが作成されません。ビューに含めるヘルパーがあります (両方を含めます)。しかし、私はレールに慣れていないので、これを正しい方法で行っているかどうかさえわかりません。
このように書くと、最初はボタンが作成されてから動作するように見えますが、クリックすると値が渡されず、DB に空の行が作成されます (ID とタイムスタンプを除く)。
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>
だから私はフィールドを作成するために何かが欠けているかどうか考えていました..手がかりはありますか?