こんにちは私はしばらくの間この問題に悩まされてきました、そしてあなたの助けをいただければ幸いです。ブラウザクエリ文字列やスマートフォンなどの外部ソースがフォームにモデルのユーザー情報を入力し、ユーザー作成アクションを押してデータをデータベースに書き込むことができるようにするAPIを作成しています。以下のコードで私が間違っていることを教えてください。
また、@ user = User.new(params [:user])のようなコードがある場合、このアプローチは、ユーザーがフォームにデータを入力したときにのみ機能することも確認しました。
そして、@ user = User.new(name:params [:name]、location:params [:location]、password = params [:password]、email:params [:email])のようなコードがある場合、これはコードはクエリ文字列エントリに対してのみ機能し、クエリ文字列と通常のフォーム送信の両方に対しては機能しません。
それはなぜですか。また、Users Controller Createアクションで上記のコードを記述して、両方の状況に対応できるようにするにはどうすればよいですか?
使用されるURL:localhost:3000 / users / create?name = John && email = john@email.com && password = secret && location = SanFrancisco&date = 06122012
日付は文字列型ですが、データベースには表示されません。なんで?他のすべてはします。
UsersController.rb
def create
@user = User.new(params[:user])
if @user.save
session[:uid] = @user.id
redirect_to thanks_path, notice: "Welcome #{@user.name}!"
else
redirect_to root_path
end
終わり
新規ユーザーフォーム:
<%=u.text_field :name, placeholder: "Name"%><br>
<%=u.text_field :email, placeholder: "Email"%><br>
<%=u.password_field :password, placeholder: "Password"%><br>
<%=u.text_field :location, placeholder: "City"%><br>
<%=u.text_field :date, placeholder: "Date"%><br>
<%if params[:partner_id]%>
<%=u.hidden_field :partner_id, value: params[:partner_id]%>
<%end%>
<button class="btn btn-large btn-primary">Enter</button>
また、通常のWebフォーム以外のユーザー作成用にremotecreateという別のメソッドを作成しようとしました。クエリ文字列にremotecreateと入力しましたが、機能しませんでした。
def remotecreate @user = User.create(name:params [:name]、email:params [:email]、password:params [:password]、location:params [:location]、date:params [:date])if @ user.save session [:uid] = @ user.id redirect_to thanks_path、notice: "Welcome#{@ user.name}" else redirect_to root_path end end
ありがとう!