我正在尝试向我的应用添加"预览"按钮/页面.
有没有办法为我的"post"和"preview"提交按钮添加不同的值,这些按钮在params散列中传递,以便我可以检查在控制器中按下哪一个并相应地渲染视图?
这是最好的方法吗?
我有
public void Foo(string name, params object[] args)
Run Code Online (Sandbox Code Playgroud)
我想用一个可以变化的args列表来调用它.我需要做点什么
Foo("yo",a,b,x==42?c);
Run Code Online (Sandbox Code Playgroud)
即如果x是42则传入a,b,c否则传入a,b.当然,这种语法不起作用.我知道我可以将args编组到List并将列表传递给函数,但是这样做组织代码的方式会非常混乱.那么我可以使用一些语法魔法
编辑:让我添加具体案例
var xml = new XDocument(....,
new XElement(....),
new XElement(....),
new XElement(....),
x==42? new XElement(.....),
new XElement(....),
new XElement(....)
....
Run Code Online (Sandbox Code Playgroud) 我有一个列表视图,对于每一行,我想要一个链接到另一个列表视图,显示相关结果.我最终设法构建的createlink行看起来像这样
<a href="${createLink(controller : 'RunResults', action:'ListSpecific', params:'[id:testExecQueueInstance.id]')}">my link</a>
Run Code Online (Sandbox Code Playgroud)
这会生成链接
http://localhost:3278/FARTFramework/runResults/listSpecific/testExecQueueInstance.id
Run Code Online (Sandbox Code Playgroud)
我知道testExecQueueInstance.id是22,我希望链接实际上看起来像这样
http://localhost:3278/FARTFramework/runResults/listSpecific/22
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我的想法是,我有一个像这样的控制器,然后应该列出那些匹配该ID的项目...
def ListSpecific(int id){
render(view: "list", model: [runResultsInstanceList: RunResults.findAllByTestExeQueueID(id, [sort:"testExecTime", order: "desc"]), runResultsInstanceTotal: RunResults.count()])
}
Run Code Online (Sandbox Code Playgroud) 假设我有以下C#函数:
void Foo(int bar, params string[] parpar) { }
Run Code Online (Sandbox Code Playgroud)
我想使用命名参数调用此函数:
Foo(bar: 5, parpar: "a", "b", "c");
Run Code Online (Sandbox Code Playgroud)
编译器给出错误消息:"命名参数不能位于位置",因为我在"b"和"c"之前没有名称.
有没有办法使用命名参数而不手动将params表示为数组?
我正在尝试向Stripe Checkout添加参数.
new.html.erb
<%= form_for @user do |f| %>
<%= f.label :first_name %>
<%= f.text_field :first_name %>
<%= f.label :last_name %>
<%= f.text_field :last_name %>
<% end %>
<%= form_tag charges_path, class: 'stripeform' do %>
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
data-description="Beautiful"
data-amount="<%= @price*100 %>"
data-image="<%= image_tag "logo.png" %>"></script>
<% end %>
Run Code Online (Sandbox Code Playgroud)
考虑到Stripe有自己的"提交"按钮,如何通过其他参数?
更新时出现这个错误,不知道为什么会出现这个错误
def update1
@user = User.find(params[:user])
if @user.update_attributes(user_params)
redirect to user_steps_path
else
render 'edit1'
end
end
private
def user_params
params.require(:user).permit(:fname, :lname, :email)
end
end
Run Code Online (Sandbox Code Playgroud)
参数:
{"utf8"=>"?",
"authenticity_token"=>"wY+llV4qot5xDsxp1JvaltvPdrZND7goaorBTh8Vteo=",
"user"=>"51",
"commit"=>"Update"}
Run Code Online (Sandbox Code Playgroud)
编辑.html.erb
这是我的编辑表格
<%= form_for :user do |f| %>
<div class="form-group">
<%= f.label :First_Name %><br />
<%= f.text_field :fname, :class=> 'form-control' %>
</div>
<div class="form-group">
<%= f.label :Last_Name %><br />
<%= f.text_field :lname, :class=> 'form-control' %>
</div>
<div class="form-group">
<%= f.label :Email_Address %><br />
<%= f.email_field :email, :class=> 'form-control' %>
</div>
<div …Run Code Online (Sandbox Code Playgroud) 给出以下网址:http://example.com?arr [] = hello&arr [] = to&arr [] = you
我能否依据以下事实:
params[:arr] == ['hello', 'to', 'you']
Run Code Online (Sandbox Code Playgroud)
?
我问,因为我有一些额外的数据将与需要映射到params [:arr]中的每个值的请求一起发送.
我在页面中使用了许多复选框,如下所示:
<%= check_box_tag(:one, value = 1) %></p>
Run Code Online (Sandbox Code Playgroud)
想象一下,它从1变为20,所有相同的值都改变了.如何让控制器进入params已检查的控制器?
示例:如果用户检查3,5和10,我如何才能在单个参数中获得这些参数?
我有ExpandableListview内部ScrollView,我知道这不好,但我也有,显示整个列表的唯一解决方案是通过使用代码设置其高度layoutParams
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,ListViewData.length());
这个解决方案很好但我无法确定我应该给出的正确高度,Params所以有没有办法从阵列的大小知道实际大小
编辑: 我提出了一个解决方案,每当我扩展一组列表时我会改变高度以适应新的geight
我正在使用CameraPreview示例API演示.我需要添加一些覆盖SurfaceView的视图(按钮等).
为此,我正在尝试设置他们的参数,但它们始终出现在屏幕的左上角.
这是代码的onCreate方法:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
btnTakePhoto = new Button(this);
btnTakePhoto.setBackgroundResource(android.R.drawable.ic_menu_camera);
/*Set container*/
mPreview = new Preview(this);
setContentView(mPreview);
/*Set button params and add it to the view*/
RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
buttonParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
buttonParams.addRule(RelativeLayout.CENTER_VERTICAL);
addContentView(btnTakePhoto, buttonParams);
numberOfCameras = Camera.getNumberOfCameras();
CameraInfo cameraInfo = new CameraInfo();
for (int i = 0; i < numberOfCameras; i++) {
Camera.getCameraInfo(i, cameraInfo);
if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) {
defaultCameraId = i;
}
}
}
Run Code Online (Sandbox Code Playgroud)
不得不说这里的价值观
RelativeLayout.LayoutParams buttonParams = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, …Run Code Online (Sandbox Code Playgroud)